Logical Interpretation: Static Program Analysis Using Theorem Proving
نویسندگان
چکیده
This paper presents the foundations for using automated deduction technology in static program analysis. The central principle is the use of logical lattices – a class of lattices defined on logical formulas in a logical theory – in an abstract interpretation framework. Abstract interpretation over logical lattices, called logical interpretation, raises new challenges for theorem proving. We present an overview of some of the existing results in the field of logical interpretation and outline some requirements for building expressive and scalable logical interpreters.
منابع مشابه
Information Flow Analysis in Logical Form
We specify an information flow analysis for a simple imperative language, using a Hoare-like logic. The logic facilitates static checking of a larger class of programs than can be checked by extant type-based approaches in which a program is deemed insecure when it contains an insecure subprogram. The logic is based on an abstract interpretation of program traces that makes independence between...
متن کاملCombining Theorem Proving with Static Analysis for Data Structure Consistency
We describe an approach for combining theorem proving techniques with static analysis to analyze data structure consistency for programs that manipulate heterogeneous data structures. Our system uses interactive theorem proving and shape analysis to verify that data structure implementations conform to set interfaces. A simpler static analysis then uses the verified set interfaces to verify pro...
متن کاملSMT-Based and Disjunctive Relational Abstract Domains for Static Analysis
Abstract Interpretation is a theory of sound approximation of program semantics. In recent decades, it has been widely and successfully applied to the static analysis of computer programs. In this thesis, we will work on abstract domains, one of the key concepts in abstract interpretation, which aim at automatically collecting information about the set of all possible values of the program vari...
متن کاملTheory for Software Verification
interpretation. Theo. Comp. Sci. 277, 1–2, 47–103. Cousot, P. and Cousot, R. 1977. Abstract interpretation: a unified lattice model for staticanalysis of programs by construction or approximation of fixpoints. In ACM Symp. on Prin. of Prog. Lang. 238–252. Cousot, P. and Cousot, R. 1992. Inductive definitions, semantics and abstract interpretation. In ACM Symp. on Prin. of Prog. Lang. 83–94....
متن کاملOn Proving Safety Properties by Integrating Static Analysis, Theorem Proving and Abstraction
We present a new approach for proving safety properties of reactive systems, based on tight interaction between static analysis, theorem proving and abstraction techniques. The method incrementally constructs a proof or nds a counterexample. Every step consists of applying one of the techniques and makes constructive use of information obtained from failures in previous steps. The amount of use...
متن کامل